function [ numberOfStrongestPoints ] = strongestPoints( image )
    points = detectSURFFeatures(image);
    [~, valid_points] = extractFeatures(image, points);
    numberOfStrongestPoints = valid_points.selectStrongest(5).Count;

    coordinates = zeros(numberOfStrongestPoints , 2);

    % get the points from the structure and load them into the coordinates variable  
    for i = 1 : numberOfStrongestPoints
        Location = points(i , 1).Location;
        coordinates(i,1) = Location(1,1);
        coordinates(i,2) = Location(1,2);
    end

    % dimension of the square that we use in elliminating the points that
    % are close to each other
    segma = 16;
    
    % compare a point to other remaining points
    for j = 1 : numberOfStrongestPoints
        if j >= numberOfStrongestPoints
                break;
        end
        x = coordinates(j,1);
        y = coordinates(j,2);
        for k = j+1 : numberOfStrongestPoints
            % break if you are in the last element in the array
            if k >= numberOfStrongestPoints
                break;
            end
            x1 = coordinates(k,1);
            y1 = coordinates(k,2);
            if ((x1 >= x - 0.5*segma) && (x1 <= x + 0.5*segma) && (y1 >= y - 0.5*segma) && (y1 <= y + 0.5*segma))
                coordinates(k , :) = [];
                [numberOfStrongestPoints, ~] = size(coordinates);
            end % end if
        end % end for
    end %end for
end % end function